package com.enjoyor.soa.traffic.api.uums.service.dubbo;

import com.enjoyor.soa.traffic.api.uums.dto.RightDto;
import com.enjoyor.soa.traffic.util.pojo.ResultPojo;

/**
 * 权限
 * 
 * @author wuhao
 *
 */

public interface DubboRightService {

    /**
     * 添加权限
     * 
     * @param rightDto
     *            ：{@link RightDto}
     * @param token
     *            :login返回的令牌
     * @param systemKey
     *            :系统授权码
     * @return
     */

    public ResultPojo insertRight(RightDto rightDto, String token, String systemKey);

    /**
     * 删除单个权限
     * 
     * @param rightId
     *            :权限编号
     * @param token
     *            :login返回的令牌
     * @param systemKey
     *            :系统授权码
     * @return
     */

    public ResultPojo deleteRightById(String rightId, String token, String systemKey);

    /**
     * 获取单个权限
     * 
     * @param rightId
     *            :权限编号
     * @param token
     *            :login返回的令牌
     * @param systemKey
     *            :系统授权码
     * @return
     */

    public ResultPojo getRightById(String rightId, String token, String systemKey);

    /**
     * 删除多个权限
     * 
     * @param ids
     *            :rightId的字符串，用“,”隔开
     * @param token
     *            :login返回的令牌
     * @param systemKey
     *            :系统编码
     * @return
     */

    public ResultPojo deleteRightByIds(String ids, String token, String systemKey);

    /**
     * 更新权限
     * 
     * @param rightDto
     *            :{@link RightDto}
     * @param token
     *            :login返回的令牌
     * @param systemKey
     *            :系统编码
     * @return
     */

    public ResultPojo updateRight(RightDto rightDto, String token, String systemKey);

    /**
     * 获取权限树
     * 
     * @param token
     *            :login返回的令牌
     * @param systemKey
     *            :系统编码
     * @return
     */

    public ResultPojo getRightTree(String token, String systemKey);

    /**
     * 获取权限列表
     * 
     * @param token
     *            :login返回的令牌
     * @param systemKey
     *            :系统编码
     * @return
     */

    public ResultPojo getRightList(String token, String systemKey);

    /**
     * 分页获取权限
     * 
     * @param paramJSON
     *            ：包含start（开始页），limit（分页的大小）的JSON字符串
     * @param token
     *            :login返回的令牌
     * @param systemKey
     *            :系统编码
     * @return
     */

    public ResultPojo getRightPage(String paramJSON, String token, String systemKey);

    /**
     * 获取角色对应的权限列表
     * 
     * @param roleId
     *            :角色编号
     * @param token
     *            :login返回的令牌
     * @param systemKey
     *            :系统编码
     * @return
     */

    public ResultPojo getRightListByRoleId(String roleId, String token, String systemKey);

    /**
     * 获取角色对应的权限树
     * 
     * @param roleId
     *            :角色编号
     * @param token
     *            :login返回的令牌
     * @param systemKey
     *            :系统编码
     * @return
     */

    public ResultPojo getRightTreeByRoleId(String roleId, String token, String systemKey);

    /**
     * 添加角色对应的权限
     * 
     * @param paramJSON
     *            ：roleId和rightIds（多个rightId用“，”隔开）的 JSON字符串
     * @param token
     *            :login返回的令牌
     * @param systemKey
     *            :系统编码
     * @return
     */

    public ResultPojo insertRoleRight(String paramJSON, String token, String systemKey);

    /**
     * 获取用户对应的权限列表
     * 
     * @param userId
     *            ：用户编号
     * @param token
     *            :login返回的令牌
     * @param systemKey
     *            :系统编码
     * @return
     */

    public ResultPojo getUserRightList(String userId, String token, String systemKey);

    /**
     * 获取用户对应的权限树
     * 
     * @param userId
     *            ：用户编号
     * @param token
     *            :login返回的令牌
     * @param systemKey
     *            :系统编码
     * @return
     */

    public ResultPojo getUserRightTree(String userId, String token, String systemKey);

}
